package org.example;

/**
 * @author 90616
 * @description
 * @create 2025/6/25 17:04
 */
import javax.net.ssl.StandardConstants;
import java.net.URL;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class UrlParser {

//    /**
//     * 解析URL并返回所有查询参数的Map集合
//     * @param urlString 待解析的URL字符串
//     * @return 一个包含所有查询参数的Map<String, String>
//     */
//    public static Map<String, String> getQueryParams(String urlString) {
//        Map<String, String> queryParams = new HashMap<>();
//        try {
//            // 1. 创建URL对象
//            URL url = new URL(urlString);
//            // 2. 获取查询字符串部分 (例如 "id=1&age=21")
//            String query = url.getQuery();
//
//            if (query == null || query.isEmpty()) {
//                return queryParams;
//            }
//
//            // 3. 按 '&' 分割成多个键值对
//            String[] pairs = query.split("&");
//            for (String pair : pairs) {
//                // 4. 按 '=' 分割每个键值对
//                int idx = pair.indexOf("=");
//                if (idx > 0) {
//                    // 5. 解码并存入Map
//                    String key = pair.substring(0, idx);
//                    String value = pair.substring(idx + 1);
//                    queryParams.put(key, value);
//                }
//            }
//        } catch (Exception e) {
//            // MalformedURLException, UnsupportedEncodingException 等
//            System.err.println("URL解析出错: " + e.getMessage());
//        }
//        return queryParams;
//    }
//
//    public static void main(String[] args) {
//        // ---- 测试用例 ----
//        String url = "https://www.nowcoder.com/finduser?id=1&age=21";
//
//        // 1. 获取所有参数
//        Map<String, String> allParams = getQueryParams(url);
//        System.out.println("从URL中解析出的所有参数: " + allParams);
//
//        // 2. 查找特定的key
//        String keyToFind = "id";
//        String value = allParams.get(keyToFind);
//
//        System.out.println("\nURL: " + url);
//        System.out.println("要查找的 Key: '" + keyToFind + "'");
//
//        if (value != null) {
//            System.out.println("找到的 Value: '" + value + "'");
//        } else {
//            System.out.println("在URL中没有找到key: '" + keyToFind + "'");
//        }
//
//        // 查找另一个key
//        keyToFind = "age";
//        value = allParams.get(keyToFind);
//        System.out.println("\n要查找的 Key: '" + keyToFind + "'");
//        System.out.println("找到的 Value: '" + value + "'");
//    }
        public static void main(String[] args) {
            String url = "https://www.nowcoder.com/finduser?id=1&age=21&address=beijing";
            Map<String, String> map = new HashMap<>();
            String[] split = url.split("\\?", 2);
            String queryParam = split[1];
            String[] params = queryParam.split("&");
            for (String param : params) {
                String[] arr = param.split("=");
                String key = arr[0];
                String value = arr[1];
                map.put(key, value);
            }
            Set<Map.Entry<String, String>> entries = map.entrySet();
            for (Map.Entry<String, String> entry : entries) {
                System.out.println(entry.getKey() + " : " + entry.getValue());
            }

        }

}